package com.yang.Offer;

public class Offer03 {
    public static void main(String[] args) {
        int[] nums = {3,4,2,1,1,0};
        Solution solution = new Solution();
        int repeatNumber = solution.findRepeatNumber(nums);
        System.out.println(repeatNumber);
    }
}

// 根据下标安排各个数字，如果不相同就进行交换(让对应下标空间存储相同的数字)， 如果在交换的时候发现下标数字已经保存了和对应数字相同的数字 则说明出现了重复的数字
class Solution {
    public int findRepeatNumber(int[] nums) {
        int temp;
        for (int i = 0; i < nums.length; i++) {
            while (nums[i] != i) {
                if (nums[nums[i]] == nums[i]) {
                    return nums[nums[i]];
                } else {
                    temp = nums[nums[i]];
                    nums[nums[i]] = nums[i];
                    nums[i] = temp;
                }
            }
        }
        return -1;
    }
}
